home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xemacs.idb / usr / freeware / lib / xemacs-20.4 / lisp / tm / gnus-sum-mime.el.z / gnus-sum-mime.el
Encoding:
Text File  |  1998-05-21  |  3.4 KB  |  125 lines

  1. ;;; gnus-sum-mime.el --- MIME extension for summary mode of Gnus
  2.  
  3. ;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc.
  4.  
  5. ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
  6. ;; Created: 1996/8/6
  7. ;; Version:
  8. ;;    $Id: gnus-sum-mime.el,v 0.8 1997/04/08 09:50:25 morioka Exp $
  9. ;; Keywords: news, MIME, multimedia, multilingual, encoded-word
  10.  
  11. ;; This file is not part of GNU Emacs yet.
  12.  
  13. ;; This program is free software; you can redistribute it and/or
  14. ;; modify it under the terms of the GNU General Public License as
  15. ;; published by the Free Software Foundation; either version 2, or (at
  16. ;; your option) any later version.
  17.  
  18. ;; This program is distributed in the hope that it will be useful, but
  19. ;; WITHOUT ANY WARRANTY; without even the implied warranty of
  20. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  21. ;; General Public License for more details.
  22.  
  23. ;; You should have received a copy of the GNU General Public License
  24. ;; along with GNU Emacs; see the file COPYING.  If not, write to the
  25. ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  26. ;; Boston, MA 02111-1307, USA.
  27.  
  28. ;;; Code:
  29.  
  30. (require 'gnus-mime)
  31. (require 'gnus-sum)
  32.  
  33.  
  34. ;;; @ summary filter
  35. ;;;
  36.  
  37. (defun gnus-set-summary-default-charset ()
  38.   (let ((charset
  39.      (if (buffer-live-p gnus-summary-buffer)
  40.          (save-excursion
  41.            (set-buffer gnus-summary-buffer)
  42.            (let ((ret (assoc-if (function
  43.                      (lambda (key)
  44.                        (string-match key gnus-newsgroup-name)
  45.                        ))
  46.                     gnus-newsgroup-default-charset-alist)
  47.               ))
  48.          (if ret
  49.              (progn
  50.                (make-local-variable 'default-mime-charset)
  51.                (setq default-mime-charset (cdr ret))
  52.                ))
  53.          )
  54.            default-mime-charset)
  55.        default-mime-charset)))
  56.     (goto-char (point-min))
  57.     (while (< (point)(point-max))
  58.       (decode-mime-charset-region (point) (point-at-eol) charset)
  59.       (end-of-line)
  60.       (let (signal-error-on-buffer-boundary) ; for XEmacs
  61.     (forward-char))
  62.       )))
  63.  
  64.  
  65. ;;; @ command functions
  66. ;;;
  67.  
  68. (defun gnus-summary-preview-mime-message (arg)
  69.   "MIME decode and play this message."
  70.   (interactive "P")
  71.   (let ((gnus-break-pages nil))
  72.     (gnus-summary-select-article t t)
  73.     )
  74.   (pop-to-buffer gnus-original-article-buffer t)
  75.   (let (buffer-read-only)
  76.     (if (text-property-any (point-min) (point-max) 'invisible t)
  77.     (remove-text-properties (point-min) (point-max)
  78.                 gnus-hidden-properties)
  79.       ))
  80.   (mime/viewer-mode nil nil nil gnus-original-article-buffer
  81.             gnus-article-buffer)
  82.   )
  83.  
  84. (defun gnus-summary-scroll-down ()
  85.   "Scroll down one line current article."
  86.   (interactive)
  87.   (gnus-summary-scroll-up -1)
  88.   )
  89.  
  90. (define-key gnus-summary-mode-map "v"
  91.   (function gnus-summary-preview-mime-message))
  92. (define-key gnus-summary-mode-map "\e\r"
  93.   (function gnus-summary-scroll-down))
  94.  
  95.  
  96. ;;; @ for tm-partial
  97. ;;;
  98.  
  99. (defun gnus-mime-partial-preview-function ()
  100.   (gnus-summary-preview-mime-message (gnus-summary-article-number))
  101.   )
  102.  
  103. (call-after-loaded
  104.  'tm-partial
  105.  (function
  106.   (lambda ()
  107.     (set-atype 'mime/content-decoding-condition
  108.            '((type . "message/partial")
  109.          (method . mime-article/grab-message/partials)
  110.          (major-mode . gnus-original-article-mode)
  111.          (summary-buffer-exp . gnus-summary-buffer)
  112.          ))
  113.     (set-alist 'tm-partial/preview-article-method-alist
  114.            'gnus-original-article-mode
  115.            'gnus-mime-partial-preview-function)
  116.     )))
  117.  
  118.  
  119. ;;; @ end
  120. ;;;
  121.  
  122. (provide 'gnus-sum-mime)
  123.  
  124. ;;; gnus-sum-mime.el ends here
  125.